/// ::= fL <L-1 non-negative number> p <top-level CV-qualifiers> <parameter-2 non-negative number> _
/// ::= cv <type> _ <expression>* E # type (expr-list), conversion with other than one argument
/// ::= tl <type> <expression>* E # type {expr-list}, conversion with braced-init-list argument
/// ::= sP <template-arg>* E # sizeof...(T), size of a captured template parameter pack from an alias template
/// ::= L <type> <real-part float> _ <imag-part float> E # complex floating point literal (C 2000)
/// <lambda-sig> ::= <parameter type>+ # Parameter types or "v" if the lambda has no parameters
fn parse_number(base: u32, allow_signed: bool, mut input: IndexStr) -> Result<(isize, IndexStr)> {
fn assert_parse_err<P, S, I>(production: &'static str, subs: S, input: I, expected_error: Error)
SpecialName::VirtualTable(TypeHandle::Builtin(BuiltinType::Standard(StandardBuiltinType::Int))),
SpecialName::TypeinfoName(TypeHandle::Builtin(BuiltinType::Standard(StandardBuiltinType::Int))),